package cn.com.cifi.mars.mapper.mars;

import cn.com.cifi.mars.bean.bo.MdmBuildAreaDetailBO;
import cn.com.cifi.mars.entity.MdmBuildArea;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * （主数据）楼栋业态面积表 Mapper 接口
 * </p>
 *
 * @author yyd
 * @since 2019-09-24
 */
public interface BuildAreaMapper extends BaseMapper<MdmBuildArea> {

    /**
     * @param projectFid 分期id
     * @param versionTypes 版本类型
     * @param isDel 是否删除
     * @return MdmBuildArea
     */
    MdmBuildArea selectNewestByFid(@Param("fid") String projectFid,@Param("versionTypes") List<String> versionTypes,@Param("isDel") int isDel);

    /**
     * @param projectFid 分期id
     * @param versionStage 版本阶段
     * @param areaCreateTime 创建时间
     * @param groupCreateTime 创建时间
     * @param versionNum 版本号
     * @param versionCode 版本号
     * @param isDel  是否删除
     * @return MdmBuildAreaDetailBO
     */
    MdmBuildAreaDetailBO selectNewestProjectFByFid(@Param("fid") String projectFid, @Param("versionStage") String versionStage,
                        @Param("areaCreateTime") LocalDateTime areaCreateTime, @Param("groupCreateTime") LocalDateTime groupCreateTime,
                        @Param("versionNum") String versionNum, @Param("versionCode") String versionCode, @Param("isDel") int isDel);

    /**
     * @param projectFid  分期id
     * @param versionStage 版本阶段
     * @param areaCreateTime 创建时间
     * @param groupCreateTime 创建时间
     * @param versionNum  版本号
     * @param versionCode 版本号
     * @param isDel 是否删除
     * @return List<MdmBuildAreaDetailBO>
     */
    List<MdmBuildAreaDetailBO> selectNewestGroupByFid(@Param("fid") String projectFid, @Param("versionStage") String versionStage,
                        @Param("areaCreateTime") LocalDateTime areaCreateTime, @Param("groupCreateTime") LocalDateTime groupCreateTime,
                        @Param("versionNum") String versionNum, @Param("versionCode") String versionCode, @Param("isDel") int isDel);

    /**
     * @param projectFid 分期id
     * @param versionStage 版本阶段
     * @param areaCreateTime 创建时间
     * @param groupCreateTime 创建时间
     * @param versionNum  版本号
     * @param versionCode 版本号
     * @param isDel 是否删除
     * @return List<MdmBuildAreaDetailBO>
     */
    List<MdmBuildAreaDetailBO> selectNewestProductByFid(@Param("fid") String projectFid, @Param("versionStage") String versionStage,
                        @Param("areaCreateTime") LocalDateTime areaCreateTime, @Param("groupCreateTime") LocalDateTime groupCreateTime,
                        @Param("versionNum") String versionNum, @Param("versionCode") String versionCode, @Param("isDel") int isDel);

    /**
     * @param projectFid 分期id
     * @param versionStage 版本阶段
     * @param areaCreateTime 创建时间
     * @param groupCreateTime 创建时间
     * @param versionNum 版本号
     * @param versionCode 版本号
     * @param isDel 是否删除
     * @return List<MdmBuildAreaDetailBO>
     */
    List<MdmBuildAreaDetailBO> selectNewestBuildByFid(@Param("fid") String projectFid, @Param("versionStage") String versionStage,
                        @Param("areaCreateTime") LocalDateTime areaCreateTime, @Param("groupCreateTime") LocalDateTime groupCreateTime,
                        @Param("versionNum") String versionNum, @Param("versionCode") String versionCode, @Param("isDel") int isDel);

    /**
     *  新增楼栋业态面积
     */
    void insertMdmDataList(@Param("list") List<MdmBuildArea> list);

    /**
     * 批量新增
     */
    void insertBatch(@Param("list") List<MdmBuildArea> gxcLdytDtolIST);
}
